1. Field of the Invention
The present invention relates to a printing system and method by using double printing modes, and more particularly, to a printing system and method for estimating complexities of required printer commands in order to decide which printing mode between the raster and high-level printer language approaches is selected. The invention also relates to a system and method for simplifying the printer commands to fasten the print speed of both laser and ink-jet printers.
2. Description of the Prior Art
The advent of electrical engineering brings printers to be an important computer peripheral device today because many reports or the like need to be converted into paper documents through kinds of printers. Users can select an image or a document file on a computer host (such as a PC or workstation) and then print out the selected one. Basically, the selected image usually a color image (e.g., a true color image) but even a color printer can not manipulate all colors, image processing is therefore required before providing a satisfactory print page. Nowadays, ink-jet and laser printers are commonly used printers. In the conventional ink-jet printers, a raster bitmap processing is the most broadly employed approach for printing a print page, on the other hand, a high-level printer language such as printer control language (PCL) or postscript language is mostly used to describe print pages in laser printers.
Basically, those printers which employ the raster bitmap scheme usually manipulates print pages at computer hosts and then transfer the processed print page (has been converted into bitmap data, i.e., a color channel indicated by a bit) to the spoolers or printers for printing on pieces of papers. Therefore, less time costly is required in the ink-jet printers by utilizing the raster bitmap approach. Additionally, the data size of a raster bitmap image is usually large, especially when a true color format which employs 24 bits per pixel (8 bits respectively for red, green and blue channels) is used, an ink-jet printer therefore directly prints the completely processed image data, which are converted into a format of 3-bit per pixel (i.e., 1 bit for each R, G and B channel). Although larger time consumption is required for manipulating the raster bitmap data, however, quite a satisfactory printing result much closer to the display image is obtained, which achieves the WYSIWYG (What you see is what you get) requirement.
On the other hand, the high-level printer language used conventionally illustrates the contents of a print page by using printer commands, for example, a circle is represented by its radius and center, therefore the data size is smaller than that of a raster bitmap image. The communication efforts between the computer hosts and printers can be significantly degraded except those complicated regions, such as repeatedly sticking images in an identity region. However, although a flexible approach provided by the high-level printer language, additional elements, for example, an ASIC in accompanied with enough memory, are needed to compatibly manipulating the print page illustrated by the high-level printer language in order to perform the image processing such as color matching and halftoning, etc. Moreover, unexpected errors may be arisen when the high-level printer language is employed in a CMYK color printer although the printed output still remains an acceptable printing quality. Accordingly, the advantage which effectively reducing the required processing time when applying the high-level printer language makes itself quite suitably employ in laser printers instead of ink-jet printers.
Although different advantages offered by the aforementioned approaches, however, different print pages usually require printer commands having different complexities, and furthermore, the required time consumption for performing each the printer command is different to each other. It is time costly to print a page by performing unnecessary image processing steps in the raster bitmap approach when the print page requires only few and simple printer commands in the high-level printer language scheme. In contrast, it is still a time costly case when the high-level printer language is employed to manipulate a complicated print page. For the laser printer engines, which can not be halted until the printing job is finished or terminated, overrun may occur to print empty regions on papers because the printer engines can not wait for the print page being completely processed. Moreover, a faster CPU and more memory are required for performing the high-level printer language approach, which will increase the manufacturing cost of the printers. A need has been arisen to disclose a printing system and method, in which the above-mentioned disadvantages of the conventional approaches can be effectively eliminated.
It is a principal object of the invention to propose a method and system that manipulates the print pages by using double printing modes.
It is a further object of the invention to provide simpler printer commands than the conventional approaches, which are suitable for laser and ink-jet printers, therefore to fasten the print speed.
According to the above objects, the disclosed method and system estimates the complexity of printer commands to decide which printing mode is going to be selected. When an operating system outputs a print page, a printer driving unit firstly estimates the time respectively consumed when applying the raster bitmap and high-level printer language approaches. Estimation of the printer driving unit is then routed into a print page processing unit for further processing. The print page is manipulated by using the raster bitmap approach in the print page processing unit when the time consumption of the print page estimated by using the raster bitmap approach is less than the other one. Otherwise, the print page is divided into a plurality of print bands for further processing. Complexity of the printer commands required for each the print band are then estimated to judge whether the complexity is higher than a predetermined band threshold. All those print bands whose complexities are higher than the band threshold are processed to generate raster bitmap data firstly, and followed by encapsulating the generated data into printer commands before storing back to memory. All printer commands of the print bands are fetched from the memory and then printed via a printer engine after color matching and halftoning processing are performed at graphics and texts.